package com.hoshino.momochi.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hoshino.momochi.model.domain.UserDetails;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface UserDetailsMapper extends BaseMapper<UserDetails> {

    /**
     * 新增用户详细信息
     *
     * @param userDetails
     */
    void addUserDetails(UserDetails userDetails);

    /**
     * 获取用户详细信息（在UserMapper中可以一并查询，不再需要）
     *
     * @param user_id
     * @return
     */
    UserDetails getUserDetails(Long user_id);

    /**
     * 删除用户详细信息
     *
     * @param uid
     */
    void delUserDetails(Long uid);

    /**
     * 更新用户名称
     *
     * @param userDetails
     */
    void updateMail(UserDetails userDetails);

    /**
     * 更新登录IP
     *
     * @param userDetails
     */
    void updateUserIp(UserDetails userDetails);

    /**
     * 根据用户 id 修改 url
     *
     * @param userDetails
     */
    void updateUrl(UserDetails userDetails);

    /**
     * 更新 用户 个性签名 电话号码 邮箱 以及 生日
     *
     * @param userDetails
     */
    void updateUserDetailsNew(UserDetails userDetails);

    /**
     * 删除 isDelete = 1 的数据
     */
    void delIsDeleteAsTrue();

    /**
     * 校验 邮箱是否已经被注册
     *
     * @param mail
     * @return
     */
    Long checkMailIsNull(String mail);

    /**
     * 传入 focus_id 获取 我关注的人的信息
     * @param focus_id
     * @return
     */
    List<UserDetails> getLocalUserDetails(Long focus_id);

    /**
     * 传入 local_id 获取 关注我的人的信息
     * @param local_id
     * @return
     */
    List<UserDetails> getFocusUserDetails(Long local_id);
}
